import { apiService } from "@service/index";

const commentsEndpoints = apiService.injectEndpoints({
  endpoints: (build) => ({
    // 获取文章的评论列表或者获取评论的回复列表
    // type: "a" 表示获取文章的评论列表
    // type: "c" 表示获取评论的回复列表
    // source: string 表示的是文章 id 或者评论 id
    // offset: string 表示平路的偏移量 评论id (当前这次请求结果中的最后一条评论的id)
    // limit: number 表示获取的评论数据个数
    requestComments: build.query<
      CommentResponse,
      { type: "a" | "c"; source: string; offset?: string; limit?: number }
    >({
      query: (params) => ({ url: "/comments", params }),
    }),
    // 对文章进行评论或对评论进行回复
    // 请求参数的含义:
    // target: 评论文章的id或回复评论的id
    // content: 评论内容
    // art_id: 文章 id, 对评论进行回复时使用
    publishComment: build.mutation<
      GeekResponse<{ com_id: string; target: string; art_id: string }>,
      { target: string; content: string; art_id?: string }
    >({
      query: (body) => ({ url: "/comments", method: "POST", body }),
    }),
  }),
});

export const { useLazyRequestCommentsQuery, usePublishCommentMutation } =
  commentsEndpoints;
